public class Solution {
    /*
     * 无重叠序列
     * 最小的删除个数
     * 根据起始位置 从小到大排序，判断 结束位置与下一个起始位置的关系决定是否删除
     * 贪心：为后面 预留出最大的空间
     * */
    public static int eraseOverlapIntervals(int[][] intervals) {
        if (intervals.length == 0 || intervals.length == 1) {
            return 0;
        }
        Arrays.sort(intervals, new Comparator<int[]>() {
            @Override
            public int compare(int[] o1, int[] o2) {
                return o1[0] - o2[0];
            }
        });

        int nums = 0;
        int finish = intervals[0][1];
        for (int i = 1; i < intervals.length; i++) {
            if (finish <= intervals[i][0]) {
                finish = intervals[i][0];
            } else {
                if (finish >= intervals[i][1]) {
                    finish = intervals[i][1];
                }
                nums++;
            }
        }
        return nums;
    }
}